<?php
/**
 * Controller de Comandos.
 *
 *
 * @filesource          
 * @copyright		
 * @link		http://www.pragmatia.com Pragmatia
 * @package		datagro
 * @subpackage	app.controllers
 * @version     1.1
 * @license		http://www.opensource.org/licenses/mit-license.php The MIT License
 * @author      Martin Radosta <mradosta@pragmatia.com>
 */


/**
 * Clase ComandosController
 *
 * @package	    datagro
 * @subpackage	app.controllers
 */

class  ComandosController extends AppController
{
    var $name = 'Comandos';
    var $uses = array("Comando", "Dominio", "Color");

/**
 * Index.
 *
 */
    function index()
    {
		if(!empty($this->data))
		{
			$condicion = $this->Filtro->generarCondicion($this->data['Filtro']);
			$this->paginate['conditions'] = $condicion;
		}

		$this->set('estados_comando', $this->Dominio->generateList(array("nombre"=>"estados_comando"), null, null, null, "{n}.Dominio.valor"));
		$this->set('registros', $this->paginate());
    }



/**
 * Falla.
 * Desglose de las fallas relacionadas a este comando.
 *
 */
   function falla($id = false)
   {
        if ($id && is_numeric($id))
        {
        	$this->set('colores', $this->Color->generateList(null, null, null, "{n}.Color.falla", "{n}.Color.color"));
            $this->data = $this->Comando->read(null, $id);
        }
   }
   
/**
 * View.
 *
 */
   function view($id = false) 
   {
        if ($id && is_numeric($id))
        {
            $this->data = $this->Comando->read(null, $id);
            $this->set('estados_comando', $this->Dominio->generateList(array("nombre"=>"estados_comando"), null, null, null, "{n}.Dominio.valor"));
        }    
   }  

/**
 * Add.
 *
 */
   function add() 
   {
		if(!empty($this->data) && isset($this->data['Comando']['accion']) && ($this->data['Comando']['accion'] == "grabar" || $this->data['Comando']['accion'] == "cancelar")) {
			if ($this->data['Comando']['accion'] == "grabar") {
				if($this->Comando->create($this->data) && $this->Comando->validates()) {
					$this->data['Comando']['estado'] = "36";
					if($this->Comando->save($this->data))
						$this->Session->setFlash('El Comando se agrego correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible agregar el nuevo Comando.', 'error');

					$this->redirect("index", null, true);
				}
			}
			elseif ($this->data['Comando']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$simsTmp = $this->Comando->Sim->findAll();
			foreach($simsTmp as $v) {
				$sims[$v['Sim']['id']] = $v['Sim']['imsi'] . " - " . $v['Sim']['numero_serie_modulo'];
			}
			$this->set("sims", $sims);
		}
   }    

/**
 * Edit.
 *
 */
   function edit($id) 
   {
		if(!empty($this->data) && isset($this->data['Comando']['accion']) && ($this->data['Comando']['accion'] == "grabar" || $this->data['Comando']['accion'] == "cancelar")) {
			if ($this->data['Comando']['accion'] == "grabar") {
				if($this->Comando->create($this->data) && $this->Comando->validates()) {
					if($this->Comando->save($this->data))
						$this->Session->setFlash('El Comando se actualizo correctamente.', 'ok');
					else
						$this->Session->setFlash('No fue posible actualizar el Comando.', 'error');

					$this->redirect("index", null, true);
				}
				else {
					$this->set("sims", $this->Comando->Sim->generateList(null, null, null, null, "{n}.Sim.imsi"));
					$this->render('add');
				}
			}
			elseif ($this->data['Comando']['accion'] == "cancelar") {
				$this->redirect("index", null, true);
			}
		}
		else {
			$this->data = $this->Comando->read(null, $id);
			$this->set("sims", $this->Comando->Sim->generateList(null, null, null, null, "{n}.Sim.imsi"));
			$this->render('add');
		}
   }    


/**
 * Delete.
 *
 */
   function delete($id = false) 
   {
        if ($id && is_numeric($id))
        {
			if ($this->Comando->delete($id))
			{
				$this->Session->setFlash('El Comando se borro correctamente.', 'ok');
			}
			else
			{
				$this->Session->setFlash('No fue posible borrar el Comando.', 'error');
			}
        }    
		$this->redirect('index', null, true);
   } 
}

?>